package com.ruoyi.web.mapper.insect;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.web.domain.insect.InsectRecord;
import com.ruoyi.web.pojo.request.insect.InsectListRequest;
import com.ruoyi.web.pojo.vo.devicedata.InsectNamePhotoVO;
import com.ruoyi.web.pojo.vo.insect.InsectAnalysisVO;
import com.ruoyi.web.pojo.vo.insect.InsectCountDataVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 昆虫识别记录表 Mapper 接口
 * @author fwx
 * @since 2024-01-22 14:20:01
 */
@Mapper
public interface InsectRecordMapper extends BaseMapper<InsectRecord> {

    /**
     * @desc  获取一段时间的分类按日汇总数据
     * @author yaojianbo
     * @date  2023/3/1 14:59
     **/
    List<InsectRecord> getInsectCategoryTotalByDay(@Param("deviceIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * @desc  统计识别昆虫数量
     * @author fwx 2024/1/23 16:19
     **/
    List<InsectCountDataVO> insectNumStatistics(@Param("deviceIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
    
    /**
     * @desc  统计分类，和识别数量
     * @author fwx 2024/1/26 11:03
     **/
    InsectCountDataVO insectStatistics(@Param("deviceId") String deviceId, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * @desc  根据昆虫名称查询图片地址
     * @author fwx 2024/1/24 16:43
     **/
    List<InsectNamePhotoVO> getByInsectName(@Param("deviceId") String deviceId, @Param("time") String time, @Param("insectName") String insectName);

    /**
     * @desc  查询某一个昆虫一段时间的数据
     * @author fwx 2024/3/7 10:20
     **/
    List<InsectAnalysisVO> getCountByInsectName(@Param("request")InsectListRequest request);

    /**
     * 获取昆虫始见期的时间
     * @author yaojianbo
     * @date 2024-4-19 14:20:01
     */
    public List<InsectCountDataVO> getInsectStartTime(@Param("insectList") List<String> insectList,
                                                      @Param("deviceIds") List<String> deviceIds,
                                                      @Param("startTime") String startTime,
                                                      @Param("endTime") String endTime);
}
